package com.fowo.api.model.quality;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Data;

/**
 * 质检单 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Data
public class QualityCheckStorageImportPo {

  /** 质检单号 */
  @ExcelProperty("质检单号")
  @Size(max = 50, message = "质检单号长度不能超过50")
  private String qcSn;

  /** 商品id */
  @ExcelProperty("商品id")
  @LongString(message = "商品id数值格式不正确", label = "商品id", min = 0L)
  private String productId;

  /** 商品图片 */
  @ExcelProperty("商品图片")
  @Size(max = 50, message = "商品图片长度不能超过50")
  private String productImg;

  /** 商品名 */
  @ExcelProperty("商品名")
  @Size(max = 50, message = "商品名长度不能超过50")
  private String productName;

  /** sku */
  @ExcelProperty("sku")
  @Size(max = 50, message = "sku长度不能超过50")
  private String sku;

  /** 商品标签 */
  @ExcelProperty("商品标签")
  @Size(max = 50, message = "商品标签长度不能超过50")
  private String productLabel;

  /** 店铺id */
  @ExcelProperty("店铺id")
  @LongString(message = "店铺id数值格式不正确", label = "店铺id", min = 0L)
  private String shopId;

  /** 店铺名 */
  @ExcelProperty("店铺名")
  @Size(max = 50, message = "店铺名长度不能超过50")
  private String shopName;

  /** fnsku */
  @ExcelProperty("fnsku")
  @Size(max = 50, message = "fnsku长度不能超过50")
  private String fnsku;

  /** 采购单号 */
  @ExcelProperty("采购单号")
  @Size(max = 50, message = "采购单号长度不能超过50")
  private String purchaseCode;

  /** 采购员id */
  @ExcelProperty("采购员id")
  @LongString(message = "采购员id数值格式不正确", label = "采购员id", min = 0L)
  private String buyerId;

  /** 采购员 */
  @ExcelProperty("采购员")
  @Size(max = 50, message = "采购员长度不能超过50")
  private String buyerName;

  /** 收货单号 */
  @ExcelProperty("收货单号")
  @Size(max = 50, message = "收货单号长度不能超过50")
  private String deliveryOrderSn;

  /** 收货人id */
  @ExcelProperty("收货人id")
  @LongString(message = "收货人id数值格式不正确", label = "收货人id", min = 0L)
  private String receiveId;

  /** 收货人 */
  @ExcelProperty("收货人")
  @Size(max = 50, message = "收货人长度不能超过50")
  private String receiveName;

  /** 仓库id */
  @ExcelProperty("仓库id")
  @LongString(message = "仓库id数值格式不正确", label = "仓库id", min = 0L)
  private String warehouseId;

  /** 仓库 */
  @ExcelProperty("仓库")
  @Size(max = 50, message = "仓库长度不能超过50")
  private String warehouseName;

  /** 供应商id */
  @ExcelProperty("供应商id")
  @LongString(message = "供应商id数值格式不正确", label = "供应商id", min = 0L)
  private String supplierId;

  /** 供应商 */
  @ExcelProperty("供应商")
  @Size(max = 50, message = "供应商长度不能超过50")
  private String supplierName;

  /** 到货时间 */
  @ExcelProperty("到货时间")
  @DateTimeString(message = "到货时间不是有效的时间日期格式")
  private String receiveTime;

  /** 质检量 */
  @ExcelProperty("质检量")
  @IntegerString(message = "质检量数值格式不正确", label = "质检量", min = 0)
  private String productReceiveNum;

  /** 质检方式 */
  @ExcelProperty("质检方式")
  @Size(max = 50, message = "质检方式长度不能超过50")
  private String qcMethodType;

  /** 质检状态 */
  @ExcelProperty("质检状态")
  @Size(max = 50, message = "质检状态长度不能超过50")
  private String qcStatus;

  /** 良品量 */
  @ExcelProperty("良品量")
  @IntegerString(message = "良品量数值格式不正确", label = "良品量", min = 0)
  private String productGoodNum;

  /** 次品量 */
  @ExcelProperty("次品量")
  @IntegerString(message = "次品量数值格式不正确", label = "次品量", min = 0)
  private String productBadNum;

  /** 质检员id */
  @ExcelProperty("质检员id")
  @LongString(message = "质检员id数值格式不正确", label = "质检员id", min = 0L)
  private String qcUserId;

  /** 质检员 */
  @ExcelProperty("质检员")
  @Size(max = 50, message = "质检员长度不能超过50")
  private String qcName;

  /** 质检时间 */
  @ExcelProperty("质检时间")
  @DateTimeString(message = "质检时间不是有效的时间日期格式")
  private String qcTime;

  /** 抽检量 */
  @ExcelProperty("抽检量")
  @IntegerString(message = "抽检量数值格式不正确", label = "抽检量", min = 0)
  private String productQcNum;

  /** 抽检次品量 */
  @ExcelProperty("抽检次品量")
  @IntegerString(
    message = "抽检次品量数值格式不正确",
    label = "抽检次品量",
    min = 0
  )
  private String qcBadNum;

  /** 抽检合格率 */
  @ExcelProperty("抽检合格率")
  @DecimalString(message = "抽检合格率小数格式不正确", label = "抽检合格率")
  private String qcRatePass;

  /** 抽检比例 */
  @ExcelProperty("抽检比例")
  @DecimalString(message = "抽检比例小数格式不正确", label = "抽检比例")
  private String qcRate;

  /** 可用仓位 */
  @ExcelProperty("可用仓位")
  @LongString(message = "可用仓位数值格式不正确", label = "可用仓位", min = 0L)
  private String whbCodeGoodId;

  /** 次品仓位 */
  @ExcelProperty("次品仓位")
  @LongString(message = "次品仓位数值格式不正确", label = "次品仓位", min = 0L)
  private String whbCodeBadId;
}
